Remedying identified frustration events in a computer system

ABSTRACT

A data processing system comprising: a constantly updating database of a plurality of processes having a plurality of operation times, relating to a plurality of applications, relating to at least one user activity, and using a plurality of computing resources; a monitor arranged to identify a plurality of clashes between the processes, a plurality of frustration events and to correlate between the frustration events and the clashes between the processes; a cause identifier arranged to identify, for each frustration event, a cause for the correlated clash of processes; a remedy generator arranged to generate, for each cause, a remedy arranged to solve the frustration event; a communication module arranged to provide the remedies to users in relation to respective user activities in view of their frustration events; and an analyzer arranged to monitor an efficacy of the remedies in respect to their corresponding frustration events.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication 61/202,750 filed on Apr. 1, 2009 and U.S. Provisional PatentApplication 61/213,453 filed on Jun. 10, 2009, which are incorporatedherein by reference.

BACKGROUND

1. Technical Field

The present invention relates to the field of computing, and moreparticularly, to enhancing operating system's efficacy.

2. Discussion of Related Art

Currently, the typical experience of using a personal computer (PC) isof frustration. Frustration may be caused by PC irresponsiveness to acommand by the User (e.g.—delayed performance of tasks requested by theUser, etc.) or by processing data unrequested by the User(e.g.—invisible resource-intensive background processes, appearance ofunrequested programs as pop-ups, etc.). Presently these types offrequently recurring events are not addressed, nor even acknowledged bythe PC. While systems for recording isolated, extreme software crashincidents are available, there is no method for monitoring, detectionand fixing the standard, commonplace PC upsets that cause ongoing PCusage frustration.

The frustrating performance occurs regardless of the operating system(“OS”) running on the PC (e.g.—Windows, MacOS, Linux, etc.). The currentOS all share the basic trait of arbitrarily determining the sequence ofactions to which the PC will direct its processing resources. Thischaracteristic also enables SW manufacturers to design their products toindependently claim PC resources without the active involvement of theuser. This mode of operation often repeatedly gives the typical user asense of lack of control over his PC, causing frustration with PC usage.

BRIEF SUMMARY

Embodiments of the present invention provide a data processing systemcomprising: a constantly updating database of a plurality of processeshaving a plurality of operation times, relating to a plurality ofapplications, relating to at least one user activity, and using aplurality of computing resources; a monitor arranged to identify aplurality of clashes between the processes, a plurality of frustrationevents and to correlate between the frustration events and the clashesbetween the processes; a cause identifier arranged to identify, for eachfrustration event, a cause for the correlated clash of processes; aremedy generator arranged to generate, for each cause, a remedy arrangedto solve the frustration event; a communication module arranged toprovide the remedies to users in relation to respective user activitiesin view of their frustration events; and an analyzer arranged to monitoran efficacy of the remedies in respect to their correspondingfrustration events.

Embodiments of the present invention provide a computer implementedmethod comprising: obtaining a plurality of frustration eventscorrelated with a plurality of clashes between processes, the processeshaving a plurality of operation times, relating to a plurality ofapplications, relating to at least one user activity, and using aplurality of computing resources; identifying, for each obtainedfrustration event, a cause for the correlated clash of processes;generating, for each cause, a remedy arranged to solve the frustrationevent; providing the remedies to users in relation to respective useractivities in view of their frustration events; and monitoring anefficacy of the remedies in respect to their corresponding frustrationevents, wherein at least one of: the obtaining; the identifying; thegenerating; the providing; and the monitoring, is performed by at leastone computer.

These, additional, and/or other aspects and/or advantages of the presentinvention are: set forth in the detailed description which follows;possibly inferable from the detailed description; and/or learnable bypractice of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be more readily understood from the detaileddescription of embodiments thereof made in conjunction with theaccompanying drawings of which:

FIG. 1 is a high level schematic block diagram of a data processingsystem, according to some embodiments of the invention; and

FIG. 2 is a high level flowchart illustrating a computer implementedmethod according to some embodiments of the invention.

DETAILED DESCRIPTION

Before explaining at least one embodiment of the invention in detail, itis to be understood that the invention is not limited in its applicationto the details of construction and the arrangement of the components setforth in the following description or illustrated in the drawings. Theinvention is applicable to other embodiments or of being practiced orcarried out in various ways. Also, it is to be understood that thephraseology and terminology employed herein is for the purpose ofdescription and should not be regarded as limiting.

The invention relates to processes 80 relating to user activities 95 ofusers 90, and to the processing of applications 82 on computingresources 84, e.g., within an operating system (OS).

FIG. 1 is a high level schematic block diagram of a data processingsystem 100, according to some embodiments of the invention. Dataprocessing system 100 comprises a constantly updating database 140 of aplurality of processes 180 (corresponding to processes 80) relating to aplurality of applications 182 (corresponding to applications 82) andusing a plurality of computing resources 184 (corresponding to computingresources 84), at least some of processes 182 relating to at least oneuser activity 195 (corresponding to user activities 95).

Database 140 may embody an inventory (“Catalog”) (based on alocal/remote database or another repository) compiling information ofevery object run or processed by the PC (“Catalog Item”), for examplesoftware applications, hardware devices, online services, multimediacodecs, web applications, drivers, plug-ins, and more, creating a commonbasis for data analysis within the PC over time and between differentPCs. The Catalog enables the system to attribute specific partialprocesses to an object, and analyze process behavior in the context ofthe full catalog item. Examples of the type of information collected foreach catalog item may include: a list of related binary executablefiles, its typical method of usage, operational costs when the catalogitem resides on the PC, descriptive text and image resources, aggregatedworld-wide usage level, etc.

Database 140 may comprise a tracking module 145 arranged to monitor andanalyze the relevant real-time and none real-time data regardingprocess' requirements, processing resources availability and user'spriorities, and constantly shape the processing schedule. Trackingmodule 145 may further track the computer and user activity providingreal-time and none real-time data regarding process' requirements,processing resources availability and user's priorities.

Tracking module 145 may comprise a client primarily maps the PCinventory and creates the local database. The client continuouslymonitors and records inventory items' usage and changes, serving forbackground performance benchmarking, and creating the typical user usagepreferences profiles. It may be synchronized with the system database.The client is continually tracking and analyzing usage data regardingeach active catalog item. Such data may be PC resource (e.g. CPU, RAM.Storage I/O, Network, etc.) usage; typical user interaction with thatparticular item; correlating usage of items; and more. These data serveto deduce user' real-time preferences and the PC processing resourcesapplied to these preferences.

Data processing system 100 further comprises a monitor 79 arranged toidentify a plurality of clashes 70 between processes 80, a plurality offrustration events 75 (relating users 90 and user activities 95) and tocorrelate between frustration events 75 and clashes 70 between processes80.

Clashes 70 between processes 80 may be identified by monitoringrelationships among processes 80 in respect to their operation times andcomputing resources 84 used by each process 80, such as to identifyclashes 70 between processes 80 in respect to the operation times and inrespect to computing resources 84.

Frustration events 75 relating to user activities 95, expectations ofuser 90 in relation to user activities 95, being defined e.g. byspecified criteria such as waiting time, user activity 95's prosecutiontime, application 82's response times etc.—may be identified by aheuristic mechanism having means of analyzing in real time thediscrepancy between the user's requirement of a catalog item'sprocessing and the actual PC resources allotted to this procedure, andrecording such events (“Frustration Detector”). Preferably, theFrustration Detector is capable of tracking ongoing PC activity andongoing user activity (using designated probes, such as a file systemdriver, user interaction, network activity, etc.) and providing therelevant data for the analysis process. When a significant discrepancybetween the user' real-time preferences and the PC processing resourcesapplied to these preferences occurs, a frustration event is detected byFrustration events identifier 120.

Frustration event data may comprise (e.g.—the frustration type (lowresponsiveness, long loading & processing time, stolen focus, crash,device error, high resources use); as well as processes suspected to beat the cause of the event; resources used at a high level that annoyedthe user and triggered the event; processes are being used, and expectedto serve the user; Frustration level—How annoying and/or intrusive isthe frustration; etc.), and any additional data that may assist inunderstanding the frustration and its root causes. Optionally, a uniqueID is generated, based on the nature of the frustration cause, effectand additional information categorizing the specific frustration. Thesedata may be logged in a local storage.

Monitor 79 may provides ongoing monitoring and detection of allfrustration causing clashes between processes in the background. Monitor79 learns the typical usage habits of the user and thereby identifiesprocesses which are not relevant to the user's current need and expectedPC performance, but are concurrently running on the PC. Monitor 79 mayanalyze and aggregate single, unique Frustration Events into generalphenomena ranked according to frequency and severity of frustration.

Data processing system 100 further comprises a remedy engine 101comprising a cause identifier 110 arranged to identify, for eachfrustration event 75, a cause for the correlated clash 70 of processes80; a remedy generator 120 arranged to generate, for each cause, aremedy arranged to solve frustration event 75; a communication module130 arranged to provide the remedies to users 90 in relation torespective user activities 95 in view of their frustration events 75;and an analyzer 135 arranged to monitor an efficacy of the remedies inrespect to their corresponding frustration events 75.

Remedy engine 101 may be connected via a communication link 99 to otherremedy engines 101A of other users 90. Remedy engines 101 and 101A mayshare remedies and information relating to frustration events 75 andtheir remedies such as to improve the remedies.

Remedy engine 101 may analyze and aggregate single, unique FrustrationEvents 75 into general phenomena ranked according to frequency andseverity of frustration. This may then be queried by the system users'community as an indicator where Remedies are most required.

Remedy engine 101 may be engine for creating, editing, synchronizing andapplying software patches that may be targeted at eliminating the causesof one or more specific frustrations (“Remedy Engine”). A “Remedy” maycomprise a small set of scripts, able to manage, run, stop, configureand remove different components of a system, including systemconfiguration, 3rd party applications, startup programs, etc. A remedymay also include the required information and action in order to undoits action. A set of rules (“Conditions”) may determine the relevance ofapplication of the Remedy according to a specific user's requirements.The Remedies' Conditions and actions have full access to all real-time,short-term and long-term information collected and managed by the system(for example—is the system idle, is a user using a specificapplication/device frequently, how much free space the user has, etc).The Remedy Engine may be an application accessible to all system users,and may enable generation, review and approval of a Remedy by the usercommunity. Based on a client's local identification of specificfrustrations by the Frustration Detector, the Remedy Engine may offerthe user to install one or more Remedies.

The global repository (which may consist of a centralized server &database, peer-to-peer storage or any other solution) may receive andaccumulate data from a local database, aggregating the individual usageand infrastructural catalog item data and Frustration Event data to a“PC Genome”. The PC Genome may allow data analysis to be performed forvarious uses within or outside of the system.

A user may use the Remedy Engine to create scripts intended to eliminatethe causes of a specific Frustration. Once created and preferablyapproved within the system community, the specific Remedy is distributedby the system only to relevant clients, based on pre-defined conditions.Remedies are distributed gradually to a small set of users who opt toserve as “beta testers”. In the following stage, after beta testingapproval, the Remedy may gradually get distributed to the entirerelevant community. A Remedy may preferably install itself automaticallyon the local client. In some instances user input on changes which mayaffect the user may be required. For that, the Remedy may include “Userinteraction information” which can later generate a dynamic userinterface dialog with which the users can interact in order to make amanual decision.

User satisfaction level is continuously measured and calculated in thebackground. After applying a remedy, the satisfaction level can beaffected, and can be related to the remedy.

In conclusion, the method and system outlined above enable reduction ofcauses of user frustration from PC usage based on a mechanism thatacknowledges user preferences and enables creation and distributionwithin the system's community of Remedies to situations preventing thefulfillment of the preferred mode of PC operation.

According to some embodiments of the invention, data processing system100 may further comprise a scoring module (not shown) configured toapply a scoring function to the identified frustration events to yieldrespective frustration levels being quantitative representation of thefrustration events. the scoring function may comprise at least one of: aweighting function associating characteristics of the user and aweighting function associating specified general characteristics of ahuman behavior. Optionally, the characteristics of the user arelearnable during the user's usage of the computer system.

According to some embodiments of the invention, data processing system100 may further comprise a monitoring module configured to monitor usagepatterns of the user to identify frustration reducing operations beinguser operations sequences associated with a reduction in the frustrationlevel below a specified level.

According to some embodiments of the invention, data processing system100 may further comprise a sharing module configured to apply a sharingfunction to the identified frustration reducing operations to yieldimplementation of the identified frustration reducing operations onother computer systems in communication with the computer system.Optionally, the other computer systems are registered to a serviceenabling the sharing function thereon.

FIG. 2 is a high level flowchart illustrating a computer implementedmethod according to some embodiments of the invention. The computerimplemented method comprises the following stages: obtaining a pluralityof frustration events correlated with a plurality of clashes betweenprocesses, the processes having a plurality of operation times, relatingto a plurality of applications, relating to at least one user activity,and using a plurality of computing resources (stage 200); identifying,for each obtained frustration event, a cause for the correlated clash ofprocesses (stage 210); generating, for each cause, a remedy arranged tosolve the frustration event (stage 220); providing the remedies to usersin relation to respective user activities in view of their frustrationevents (stage 230); monitoring an efficacy of the remedies in respect totheir corresponding frustration events (stage 240).

The computer implemented method may further comprise managing a databaseof remedies and analyzing their efficacies by many users (stage 250);and adjusting the remedies in relation to their efficacy analysis (stage260).

Stages 200-260 are carried out substantially immediately during runningthe processes, and at least one of the stages 200-260 is performed by atleast one computer.

According to some embodiments of the invention, the remedy engine may beoperating in a semi automatic configuration. According to thisembodiment, the user is provided with a remedy generator that generates,from an intuitive functional language provided by the user, respectivecode or computer readable instructions that are directed at remedyingthe conditions in a computer system that were caused by the identifiedfrustration event.

Following are two non limiting examples illustrating the aforementioneduse of intuitive functional language. In example 1, a certainapplication (e.g., itunes) has been slowing down a specific computer.The itunes application is then removed from the start up window in theoperating System.

Example 1 is illustrated by the following pseudocode:

If ApplicationExist(“Itunes”) { Who is it relevant for} IfApplicationUsageLevel(“Itunes”) = low {What to do - the actual action}RemoveFromAutomaticStart (“Itunes”)

As shown above, the first line identifies itunes on the start-up. Then acondition (of usage) is checked in view of a specified threshold. Then,if the condition is met and the itunes application is rarely used, it isremoved from the start-up applications.

Example 2, illustrated below in a pseudo code form, shows reschedulingan antivirus application to timeslots where the user is unlikely to usethe computer.

If ApplicationExist(“AVG Anti vir*”) Who is it relevant forSetAntiVirusSchedule(UserTypicalIdleTime) What to do (actual action)

As shown above, the antivirus application is identified by applicationfile name or the like, and then it is set to operate on timeslots inwhich the user is typically idle so that least disturbance occur.

In the above description, an embodiment is an example or implementationof the inventions. The various appearances of “one embodiment,” “anembodiment” or “some embodiments” do not necessarily all refer to thesame embodiments.

Although various features of the invention may be described in thecontext of a single embodiment, the features may also be providedseparately or in any suitable combination. Conversely, although theinvention may be described herein in the context of separate embodimentsfor clarity, the invention may also be implemented in a singleembodiment.

Reference in the specification to “some embodiments”, “an embodiment”,“one embodiment” or “other embodiments” means that a particular feature,structure, or characteristic described in connection with theembodiments is included in at least some embodiments, but notnecessarily all embodiments, of the inventions.

It is to be understood that the phraseology and terminology employedherein is not to be construed as limiting and are for descriptivepurpose only.

The principles and uses of the teachings of the present invention may bebetter understood with reference to the accompanying description,figures and examples.

It is to be understood that the details set forth herein do not construea limitation to an application of the invention.

Furthermore, it is to be understood that the invention can be carriedout or practiced in various ways and that the invention can beimplemented in embodiments other than the ones outlined in thedescription above.

It is to be understood that the terms “including”, “comprising”,“consisting” and grammatical variants thereof do not preclude theaddition of one or more components, features, steps, or integers orgroups thereof and that the terms are to be construed as specifyingcomponents, features, steps or integers.

If the specification or claims refer to “an additional” element, thatdoes not preclude there being more than one of the additional element.

It is to be understood that where the claims or specification refer to“a” or “an” element, such reference is not to be construed that there isonly one of that element.

It is to be understood that where the specification states that acomponent, feature, structure, or characteristic “may”, “might”, “can”or “could” be included, that particular component, feature, structure,or characteristic is not required to be included.

Where applicable, although state diagrams, flow diagrams or both may beused to describe embodiments, the invention is not limited to thosediagrams or to the corresponding descriptions. For example, flow neednot move through each illustrated box or state, or in exactly the sameorder as illustrated and described.

Methods of the present invention may be implemented by performing orcompleting manually, automatically, or a combination thereof, selectedsteps or tasks.

The term “method” may refer to manners, means, techniques and proceduresfor accomplishing a given task including, but not limited to, thosemanners, means, techniques and procedures either known to, or readilydeveloped from known manners, means, techniques and procedures bypractitioners of the art to which the invention belongs.

The descriptions, examples, methods and materials presented in theclaims and the specification are not to be construed as limiting butrather as illustrative only.

Meanings of technical and scientific terms used herein are to becommonly understood as by one of ordinary skill in the art to which theinvention belongs, unless otherwise defined.

The present invention may be implemented in the testing or practice withmethods and materials equivalent or similar to those described herein.

Any publications, including patents, patent applications and articles,referenced or mentioned in this specification are herein incorporated intheir entirety into the specification, to the same extent as if eachindividual publication was specifically and individually indicated to beincorporated herein. In addition, citation or identification of anyreference in the description of some embodiments of the invention shallnot be construed as an admission that such reference is available asprior art to the present invention.

While the invention has been described with respect to a limited numberof embodiments, these should not be construed as limitations on thescope of the invention, but rather as exemplifications of some of thepreferred embodiments. Other possible variations, modifications, andapplications are also within the scope of the invention. Accordingly,the scope of the invention should not be limited by what has thus farbeen described, but by the appended claims and their legal equivalents.

What is claimed is:
 1. A computer implemented method comprising: undercontrol of a computer system, automatically identifying a plurality offrustration events caused by computer irresponsiveness to a command by auser correlated with a plurality of clashes between processes, thefrustration events defined or measured by one or more of delayedperformance of tasks requested by a user, time to process useractivities, application response times, or appearance of unrequestedprograms, the processes having a plurality of operation times, relatingto a plurality of applications, relating to at least one user activity,and using a plurality of computing resources, the plurality of clashesidentified by monitoring relationships among processes in respect totheir operation times and the computing resources used by each process,each of the plurality of frustration events automatically identified byanalyzing in real-time a discrepancy between user real-time preferencesand actual computing resources allotted to these preferences by trackingongoing user activity and ongoing computer system activity, thereal-time user preferences determined at least by monitoring userinteraction with objects run or processed by the computer system toperform requested tasks and user activities; identifying, for eachobtained frustration event, a cause for the correlated clash ofprocesses; generating, for each cause, a remedy arranged to solve thefrustration event, wherein a remedy comprises a script or codeconfigured to manage, run, stop, configure and/or remove differentcomponents of the computer system that are not relevant to a preferenceof the user and/or expected computer performance; providing the remediesto users in relation to respective user activities in view of theirfrustration events; monitoring an efficacy of the remedies, afterapplied to the computer system, in respect to their correspondingfrustration events; and adjusting the remedies in relation to themonitored efficacy of the remedies.
 2. The method according to claim 1,further applying a scoring function to the identified frustration eventsto yield respective frustration levels being quantitativerepresentations of the frustration events.
 3. The method according toclaim 2, wherein the scoring function comprises at least one of: aweighting function associating characteristics of the user and aweighting function associating specified general characteristics of ahuman behavior.
 4. The method according to claim 2, wherein the scoringfunction comprises at least one of: a weighting function associatingcharacteristics of the user, which are learnable during the user's usageof the computer system.
 5. The method according to claim 2, furthercomprising automatically monitoring usage patterns of the user toidentify frustration reducing operation sequences associated with areduction in the frustration level below a specified level.
 6. Themethod according to claim 5, further comprising applying a sharingfunction to the identified frustration reducing operations to shareimplementation of the identified frustration reducing operations withother computer systems in communication with the computer system.
 7. Themethod according to claim 1, wherein the generated remedy is anexecutable portion of computer code and further comprising automaticallyexecuting the generated remedy.
 8. A data processing computer systemcomprising: a computer processor; a memory; a constantly updatingdatabase stored in the memory of a plurality of processes having aplurality of operation times, relating to a plurality of applications,relating to at least one user activity, and using a plurality ofcomputing resources; a monitor stored in the memory and executed by thecomputer processor arranged to identify a plurality of clashes betweenthe processes by monitoring relationships among processes in respect totheir operation times and the computing resources used by each process,to automatically identify a plurality of frustration events by analyzingin real-time a discrepancy between user real-time preferences and actualcomputing resources allotted to these preferences by tracking ongoinguser activity and ongoing computer system activity, the frustrationevents defined or measured by one or more of delayed performance oftasks requested by a user, time to process user activities, applicationresponse times, or appearance of unrequested programs, the processeshaving a plurality of operation times, relating to a plurality ofapplications, relating to at least one user activity, and using aplurality of computing resources, the real-time user preferencesdetermined at least by monitoring user interaction with objects run orprocessed by the computer system to perform requested tasks and useractivities, and to automatically correlate between the frustrationevents and the clashes between the processes; a cause identifier storedin the memory and executed by the computer processor arranged toidentify, for each frustration event, a cause for the correlated clashof processes; a remedy generator stored in the memory and executed bythe computer processor arranged to generate, for each cause, a remedyarranged to solve the frustration event, wherein a remedy comprises ascript or code configured to manage, run, stop, configure and/or removedifferent components of the computer system that are not relevant to apreference of the user and/or expected computer performance; acommunication module stored in the memory and executed by the computerprocessor arranged to provide the remedies to users in relation torespective user activities in view of their frustration events; and ananalyzer stored in the memory and executed by the computer processorarranged to monitor an efficacy of the remedies, after applied to thecomputer system, in respect to their corresponding frustration events;wherein the data processing computer system is configured to adjust theremedies in relation to the monitored efficacy of the remedies.
 9. Thesystem according to claim 8, further comprising a scoring moduleconfigured to apply a scoring function to the identified frustrationevents to yield respective frustration levels being quantitativerepresentations of the frustration events.
 10. The system according toclaim 9, wherein the scoring function comprises at least one of: aweighting function associating characteristics of the user and aweighting function associating specified general characteristics of ahuman behavior.
 11. The system according to claim 8, wherein the scoringfunction comprises a weighting function associating characteristics ofthe user, which are learnable during the user's usage of the computersystem.
 12. The system according to claim 8, further comprising amonitoring module configured to automatically monitor usage patterns ofthe user to identify frustration reducing operations sequencesassociated with a reduction in the frustration level below a specifiedlevel.
 13. The system according to claim 12, further comprising asharing module configured to apply a sharing function to the identifiedfrustration reducing operations to share implementation of theidentified frustration reducing operations with other computer systemsin communication with the computer system.
 14. The system according toclaim 13, wherein the remedy is a is a software patch targeted ateliminating causes of one or more specific frustrations.
 15. A computerprogram product comprising a computer readable hardware storage mediumhaving computer readable program embodied therewith, the computerreadable program comprising: computer readable program configured torepeatedly update a database of a plurality of processes having aplurality of operation times, relating to a plurality of applications,relating to at least one user activity, and using a plurality ofcomputing resources; computer readable program configured to identify aplurality of clashes between the processes by monitoring relationshipsamong processes in respect to their operation times and the computingresources used by each process, to automatically identify a plurality offrustration events by analyzing in real-time a discrepancy between userreal-time preferences and actual computing resources allotted to thesepreferences by tracking ongoing user activity and ongoing computersystem activity, the frustration events defined or measured by one ormore of delayed performance of tasks requested by a user, time toprocess user activities, application response times, or appearance ofunrequested programs, the processes having a plurality of operationtimes, relating to a plurality of applications, relating to at least oneuser activity, and using a plurality of computing resources, thereal-time user preferences determined at least by monitoring userinteraction with objects run or processed by the computer system toperform requested tasks and user activities, and to automaticallycorrelate between the frustration events and the clashes between theprocesses; computer readable program configured to identify, for eachfrustration event, a cause for the correlated clash of processes;computer readable program configured to generate, for each cause, aremedy arranged to solve the frustration event, wherein a remedycomprises a script or code configured to manage, run, stop, configureand/or remove different components of the computer system that are notrelevant to a preference of the user and/or expected computerperformance; computer readable program configured to provide theremedies to users in relation to respective user activities in view oftheir frustration events; computer readable program configured tomonitor an efficacy of the remedies, after applied to the computersystem, in respect to their corresponding frustration events; andcomputer readable program configured to adjust the remedies in relationto the monitored efficacy of the remedies.
 16. The computer productaccording to claim 15, further comprising computer readable programconfigured to apply a scoring function to the identified frustrationevents to yield respective frustration levels being quantitativerepresentations of the frustration events.
 17. The computer productaccording to claim 16, wherein the scoring function comprises at leastone of: a weighting function associating characteristics of the user anda weighting function associating specified general characteristics of ahuman behavior.
 18. The computer product according to claim 16, whereinthe scoring function comprises at least one of: a weighting functionassociating characteristics of the user, which are learnable during theuser's usage of the computer system.
 19. The computer product accordingto claim 16, further comprising computer readable program configured toautomatically monitor usage patterns of the user to identify frustrationreducing operation sequences associated with a reduction in thefrustration level below a specified level.
 20. The computer productaccording to claim 19, further comprising computer readable programconfigured to apply a sharing function to the identified frustrationreducing operations to share implementation of the identifiedfrustration reducing operations with other computer systems incommunication with the computer system.
 21. The method of claim 1wherein the remedy comprises a software patch to be applied to thecomputer system.